package com.ubxtech.core.utils;

import cn.hutool.core.util.StrUtil;
import lombok.Getter;

/**
 * 国家编码
 * @author Victor.Xiao
 * @since 2022-11-17 16:51
 */
@Getter
public enum Country {
    AL("AL","ALB","sq","阿尔巴尼亚","Albania","阿尔巴尼亚","Albania","008"),
    DZ("DZ","DZA","ar","阿尔及利亚","Algeria","阿尔及利亚","Algeria","012"),
    AF("AF","AFG","","阿富汗","Afghanistan","阿富汗","Afghanistan","004"),
    AR("AR","ARG","es","阿根廷","Argentina","阿根廷","Argentina","032"),
    AE("AE","ARE","ar","阿联酋","United Arab Emirates","阿联酋","United Arab Emirates","784"),
    AW("AW","ABW","","阿鲁巴岛","Aruba","阿鲁巴岛","Aruba","533"),
    OM("OM","OMN","ar","阿曼","Oman","阿曼","Oman","512"),
    AZ("AZ","AZE","","阿塞拜疆","Azerbaijan","阿塞拜疆","Azerbaijan","031"),
    EG("EG","EGY","ar","埃及","Egypt","埃及","Egypt","818"),
    ET("ET","ETH","","埃塞俄比亚","Ethiopia","埃塞俄比亚","Ethiopia","231"),
    IE("IE","IRL","ga,en","爱尔兰","Ireland","爱尔兰","Ireland","372"),
    EE("EE","EST","et","爱沙尼亚","Estonia","爱沙尼亚","Estonia","233"),
    AD("AD","AND","","安道尔","Andorra","安道尔","Andorra","020"),
    AO("AO","","","安哥拉","Angola","安哥拉","Angola",""),
    AI("AI","AIA","","安圭拉","Anguilla","安圭拉","Anguilla","660"),
    AG("AG","ATG","","安提瓜和巴布达","Antigua and Barbuda","安提瓜和巴布达","Antigua and Barbuda","028"),
    AT("AT","AUT","de","奥地利","Austria","奥地利","Austria","040"),
    AX("AX","","","奥兰群岛","Aland Islands","奥兰群岛","Aland Islands",""),
    AU("AU","AUS","en","澳大利亚","Australia","澳大利亚","Australia","036"),
    VA("VA","VAT","","梵蒂冈","Vatican","梵蒂冈","Vatican","336"),
    BB("BB","BRB","","巴巴多斯","Barbados","巴巴多斯","Barbados","052"),
    PG("PG","PNG","","巴布亚新几内亚","Papua New Guinea","巴布亚新几内亚","Papua New Guinea","598"),
    BS("BS","BHS","","巴哈马","Bahamas","巴哈马","Bahamas","044"),
    PK("PK","PAK","","巴基斯坦","Pakistan","巴基斯坦","Pakistan","586"),
    PY("PY","PRY","es","巴拉圭","Paraguay","巴拉圭","Paraguay","600"),
    PS("PS","PST","","巴勒斯坦","Palestine","巴勒斯坦","Palestine","374"),
    BH("BH","BHR","ar","巴林","Bahrain","巴林","Bahrain","048"),
    PA("PA","PAN","es","巴拿马","Panama","巴拿马","Panama","591"),
    BR("BR","BRA","pt","巴西","Brazil","巴西","Brazil","076"),
    BY("BY","BLR","be","白俄罗斯","Belarus","白俄罗斯","Belarus","112"),
    BM("BM","BMU","","百慕大","Bermuda","百慕大","Bermuda","060"),
    BG("BG","BGR","bg","保加利亚","Bulgaria","保加利亚","Bulgaria","100"),
    MP("MP","MNP","","北马里亚纳群岛","Northern Mariana Islands","北马里亚纳群岛","Northern Mariana Islands","580"),
    BJ("BJ","BEN","","贝宁","Benin","贝宁","Benin","204"),
    BE("BE","BEL","fr,nl","比利时","Belgium","比利时","Belgium","056"),
    IS("IS","ISL","is","冰岛","Iceland","冰岛","Iceland","352"),
    BO("BO","BOL","es","玻利维亚","Bolivia","玻利维亚","Bolivia","068"),
    PR("PR","PRI","es","波多黎各","Puerto Rico","波多黎各","Puerto Rico","630"),
    BA("BA","","sr","波黑","Bosnia and Herzegovina","波黑","Bosnia and Herzegovina",""),
    PL("PL","POL","pl","波兰","Poland","波兰","Poland","616"),
    BW("BW","BWA","","博茨瓦纳","Botswana","博茨瓦纳","Botswana","072"),
    BQ("BQ","","","博奈尔岛、圣尤斯特歇、萨巴","Bonaire, Saint Eustatius and Saba","博奈尔岛、圣尤斯特歇、萨巴","Bonaire, Saint Eustatius and Saba",""),
    BZ("BZ","BLZ","","伯利兹","Belize","伯利兹","Belize","084"),
    BT("BT","BTN","","不丹","Bhutan","不丹","Bhutan","064"),
    BF("BF","BFA","","布基纳法索","Burkina Faso","布基纳法索","Burkina Faso","854"),
    BI("BI","BDI","","布隆迪","Burundi","布隆迪","Burundi","108"),
    BV("BV","BVT","","布维岛","Bouvet Island","布维岛","Bouvet Island","074"),
    GQ("GQ","GNQ","","赤道几内亚","Equatorial Guinea","赤道几内亚","Equatorial Guinea","226"),
    DK("DK","DNK","da","丹麦","Denmark","丹麦","Denmark","208"),
    DE("DE","DEU","de","德国","Germany","德国","Germany","276"),
    TL("TL","","","东帝汶","Timor-leste","东帝汶","Timor-leste",""),
    TG("TG","TGO","","多哥","Togo","多哥","Togo","768"),
    DM("DM","DMA","","多米尼加","Dominica","多米尼加","Dominica","212"),
    DO("DO","DOM","es","多米尼加共和国","Dominican Republic","多米尼加共和国","Dominican Republic","214"),
    RU("RU","RUS","ru","俄罗斯","Russia","俄罗斯","Russia","643"),
    EC("EC","ECU","es","厄瓜多尔","Ecuador","厄瓜多尔","Ecuador","218"),
    ER("ER","ERI","","厄立特里亚","Eritrea","厄立特里亚","Eritrea","232"),
    FR("FR","FRA","fr","法国","France","法国","France","250"),
    FO("FO","FRO","","法罗群岛","Faroe Islands","法罗群岛","Faroe Islands","234"),
    PF("PF","PYF","","法属波利尼西亚","French Polynesia","法属波利尼西亚","French Polynesia","258"),
    GF("GF","GUF","","法属圭亚那","French Guiana","法属圭亚那","French Guiana","254"),
    TF("TF","","","法属南部领土","French Southern Territories","法属南部领土","French Southern Territories",""),
    PH("PH","PHL","en","菲律宾","Philippines","菲律宾","Philippines","608"),
    FI("FI","FIN","fi","芬兰","Finland","芬兰","Finland","246"),
    CV("CV","CPV","","佛得角","Cape Verde","佛得角","Cape Verde","132"),
    FK("FK","","","福克兰群岛（马尔维纳斯）","Falkland Islands (Malvinas)","福克兰群岛（马尔维纳斯）","Falkland Islands (Malvinas)",""),
    GM("GM","GMB","","冈比亚","Gambia","冈比亚","Gambia","270"),
    CG("CG","COG","","刚果","Congo","刚果","Congo","178"),
    CD("CD","","","刚果（金）","The Democratic Republic of the Congo","刚果（金）","The Democratic Republic of the Congo",""),
    CO("CO","COL","es","哥伦比亚","Colombia","哥伦比亚","Colombia","170"),
    CR("CR","CR","es","哥斯达黎加","Costa Rica","哥斯达黎加","Costa Rica","188"),
    GG("GG","","","格恩西岛","Guernsey","格恩西岛","Guernsey",""),
    GD("GD","GRD","","格林纳达","Grenada","格林纳达","Grenada","308"),
    GL("GL","GRL","","格陵兰岛","Greenland","格陵兰岛","Greenland","304"),
    GE("GE","GEO","","格鲁吉亚","Georgia","格鲁吉亚","Georgia","268"),
    GP("GP","GLP","","瓜德罗普岛","Guadeloupe","瓜德罗普岛","Guadeloupe","312"),
    GU("GU","GUM","","关岛","Guam","关岛","Guam","316"),
    GY("GY","GUY","","圭亚那","Guyana","圭亚那","Guyana","328"),
    KZ("KZ","KAZ","","哈萨克斯坦","Kazakhstan","哈萨克斯坦","Kazakhstan","398"),
    HT("HT","HTI","","海地","Haiti","海地","Haiti","332"),
    KR("KR","KOR","ko","韩国","South Korea","韩国","South Korea","410"),
    NL("NL","NLD","nl","荷兰","Netherlands","荷兰","Netherlands","528"),
    AN("AN","ANT","","荷属安的列斯","Netherlands Antilles","荷属安的列斯","Netherlands Antilles","530"),
    HM("HM","","","赫德岛和麦克唐纳群岛","Heard Island and the McDonald Islands","赫德岛和麦克唐纳群岛","Heard Island and the McDonald Islands",""),
    ME("ME","","sr","黑山共和国","Montenegro","黑山共和国","Montenegro",""),
    HN("HN","HND","es","洪都拉斯","Honduras","洪都拉斯","Honduras","340"),
    KI("KI","KIR","","基里巴斯","Kiribati","基里巴斯","Kiribati","296"),
    DJ("DJ","DJI","","吉布提","Djibouti","吉布提","Djibouti","262"),
    KG("KG","KGZ","","吉尔吉斯斯坦","Kyrgyzstan","吉尔吉斯斯坦","Kyrgyzstan","417"),
    GN("GN","GIN","","几内亚","Guinea","几内亚","Guinea","324"),
    GW("GW","GNB","","几内亚比绍","Guinea-Bissau","几内亚比绍","Guinea-Bissau","624"),
    CA("CA","CAN","fr,en","加拿大","Canada","加拿大","Canada","124"),
    GH("GH","GHA","","加纳","Ghana","加纳","Ghana","288"),
    GA("GA","GAB","","加蓬","Gabon","加蓬","Gabon","266"),
    KH("KH","KHM","","柬埔寨","Cambodia","柬埔寨","Cambodia","116"),
    CZ("CZ","CZE","cs","捷克共和国","Czech Republic","捷克共和国","Czech Republic","203"),
    ZW("ZW","ZWE","","津巴布韦","Zimbabwe","津巴布韦","Zimbabwe","716"),
    CM("CM","CMR","","喀麦隆","Cameroon","喀麦隆","Cameroon","120"),
    QA("QA","QAT","ar","卡塔尔","Qatar","卡塔尔","Qatar","634"),
    KY("KY","CYM","","开曼群岛","Cayman Islands","开曼群岛","Cayman Islands","136"),
    CC("CC","","","科科斯（基林）群岛","Cocos (Keeling) Islands","科科斯（基林）群岛","Cocos (Keeling) Islands",""),
    KM("KM","COM","","科摩罗","Comoros","科摩罗","Comoros","174"),
    XK("XK","","","科索沃","Kosovo","科索沃","Kosovo",""),
    CI("CI","CIV","","科特迪瓦","Côte d'Ivoire","科特迪瓦","Côte d'Ivoire","384"),
    KW("KW","KWT","ar","科威特","Kuwait","科威特","Kuwait","414"),
    HR("HR","HRV","hr","克罗地亚","Croatia","克罗地亚","Croatia","191"),
    KE("KE","KEN","","肯尼亚","Kenya","肯尼亚","Kenya","404"),
    CK("CK","COK","","库克群岛","Cook Islands","库克群岛","Cook Islands","184"),
    CW("CW","","","库拉索岛","Curaçao","库拉索岛","Curaçao",""),
    LV("LV","LVA","lv","拉脱维亚","Latvia","拉脱维亚","Latvia","428"),
    LS("LS","LSO","","莱索托","Lesotho","莱索托","Lesotho","426"),
    LA("LA","LAO","","老挝","Laos","老挝","Laos","418"),
    LB("LB","LBN","ar","黎巴嫩","Lebanon","黎巴嫩","Lebanon","422"),
    LR("LR","LBR","","利比里亚","Liberia","利比里亚","Liberia","430"),
    LY("LY","LBY","ar","利比亚","Libya","利比亚","Libya","434"),
    LT("LT","LTU","lt","立陶宛","Lithuania","立陶宛","Lithuania","440"),
    LI("LI","LIE","","列支敦士登","Liechtenstein","列支敦士登","Liechtenstein","438"),
    RE("RE","REU","","留尼旺岛","Reunion","留尼旺岛","Reunion","638"),
    LU("LU","LUX","fr,de","卢森堡","Luxembourg","卢森堡","Luxembourg","442"),
    RW("RW","RWA","","卢旺达","Rwanda","卢旺达","Rwanda","646"),
    RO("RO","ROM","ro","罗马尼亚","Romania","罗马尼亚","Romania","642"),
    MG("MG","MDG","","马达加斯加","Madagascar","马达加斯加","Madagascar","450"),
    IM("IM","","","马恩岛","Isle of Man","马恩岛","Isle of Man",""),
    MT("MT","MLT","mt,en","马耳他","Malta","马耳他","Malta","470"),
    MV("MV","MDV","","马尔代夫","Maldives","马尔代夫","Maldives","462"),
    MW("MW","MWI","","马拉维","Malawi","马拉维","Malawi","454"),
    MY("MY","MYS","ms","马来西亚","Malaysia","马来西亚","Malaysia","458"),
    ML("ML","MLI","","马里","Mali","马里","Mali","466"),
    MK("MK","MKD","mk","马其顿","Macedonia","马其顿","Macedonia","807"),
    MH("MH","MHL","","马绍尔群岛","Marshall Islands","马绍尔群岛","Marshall Islands","584"),
    MQ("MQ","MTQ","","马提尼克岛","Martinique","马提尼克岛","Martinique","474"),
    YT("YT","MYT","","马约特岛","Mayotte","马约特岛","Mayotte","175"),
    MU("MU","MUS","","毛里求斯","Mauritius","毛里求斯","Mauritius","480"),
    MR("MR","MRT","","毛里塔尼亚","Mauritania","毛里塔尼亚","Mauritania","478"),
    US("US","USA","en,es","美国","United States","美国","United States","840"),
    UM("UM","","","美国本土外小岛屿","United States Minor Outlying Islands","美国本土外小岛屿","United States Minor Outlying Islands",""),
    AS("AS","ASM","","美属萨摩亚","American Samoa","美属萨摩亚","American Samoa","016"),
    VI("VI","","","美属维尔京群岛","Virgin Islands, U.S.","美属维尔京群岛","Virgin Islands, U.S.",""),
    MN("MN","MNG","","蒙古","Mongolia","蒙古","Mongolia","496"),
    MS("MS","MSR","","蒙特塞拉特岛","Montserrat","蒙特塞拉特岛","Montserrat","500"),
    BD("BD","BGD","","孟加拉国","Bangladesh","孟加拉国","Bangladesh","050"),
    PE("PE","PER","es","秘鲁","Peru","秘鲁","Peru","604"),
    FM("FM","FSM","","密克罗尼西亚","Micronesia","密克罗尼西亚","Micronesia","583"),
    MM("MM","MMR","","缅甸","Myanmar","缅甸","Myanmar","104"),
    MD("MD","MDA","","摩尔多瓦","Mo1dova","摩尔多瓦","Mo1dova","498"),
    MA("MA","MAR","ar","摩洛哥","Morocco","摩洛哥","Morocco","504"),
    MC("MC","MCO","","摩纳哥","Monaco","摩纳哥","Monaco","492"),
    MZ("MZ","MOZ","","莫桑比克","Mozambique","莫桑比克","Mozambique","508"),
    MX("MX","MEX","es","墨西哥","Mexico","墨西哥","Mexico","484"),
    NA("NA","NAM","","纳米比亚","Namibia","纳米比亚","Namibia","516"),
    ZA("ZA","ZAF","en","南非","South Africa","南非","South Africa","710"),
    AQ("AQ","ATA","","南极洲","Antarctica","南极洲","Antarctica","010"),
    GS("GS","","","南乔治亚和南桑德韦奇群岛","South Georgia and the South Sandwich Islands","南乔治亚和南桑德韦奇群岛","South Georgia and the South Sandwich Islands",""),
    NP("NP","NPL","","尼泊尔","Nepal","尼泊尔","Nepal","524"),
    NI("NI","NIC","es","尼加拉瓜","Nicaragua","尼加拉瓜","Nicaragua","558"),
    NE("NE","NER","","尼日尔","Niger","尼日尔","Niger","562"),
    NG("NG","NGA","","尼日利亚","Nigeria","尼日利亚","Nigeria","566"),
    NU("NU","NIU","","纽埃岛","Niue","纽埃岛","Niue","570"),
    NO("NO","NOR","no","挪威","Norway","挪威","Norway","578"),
    NF("NF","NFK","","诺福克岛","Norfolk Island","诺福克岛","Norfolk Island","574"),
    PW("PW","PLW","","帕劳群岛","Palau","帕劳群岛","Palau","585"),
    PN("PN","","","皮特凯恩","Pitcairn","皮特凯恩","Pitcairn",""),
    PT("PT","PRT","pt","葡萄牙","Portugal","葡萄牙","Portugal","620"),
    JP("JP","JPN","ja","日本","Japan","日本","Japan","392"),
    SE("SE","SWE","sv","瑞典","Sweden","瑞典","Sweden","752"),
    CH("CH","CHE","fr,de,it","瑞士","Switzerland","瑞士","Switzerland","756"),
    SV("SV","SLV","es","萨尔瓦多","El Salvador","萨尔瓦多","El Salvador","222"),
    WS("WS","WSM","","萨摩亚群岛","Samoa","萨摩亚群岛","Samoa","882"),
    RS("RS","","sr","塞尔维亚","Serbia","塞尔维亚","Serbia",""),
    SL("SL","SLE","","塞拉利昂","Sierra Leone","塞拉利昂","Sierra Leone","694"),
    SN("SN","SEN","","塞内加尔","Senegal","塞内加尔","Senegal","686"),
    CY("CY","CYP","el","塞浦路斯","Cyprus","塞浦路斯","Cyprus","196"),
    SC("SC","SYC","","塞舌尔","Seychelles","塞舌尔","Seychelles","690"),
    SA("SA","SAU","ar","沙特阿拉伯","Saudi Arabia","沙特阿拉伯","Saudi Arabia","682"),
    BL("BL","","","圣巴泰勒米","Saint Barthelemy","圣巴泰勒米","Saint Barthelemy",""),
    CX("CX","","","圣诞岛","Christmas Island","圣诞岛","Christmas Island",""),
    ST("ST","","","圣多美和普林西比","Sao Tome and Principe","圣多美和普林西比","Sao Tome and Principe",""),
    SH("SH","SHN","","圣赫勒拿","Saint helena","圣赫勒拿","Saint helena","654"),
    KN("KN","","","圣基茨和尼维斯","Saint Kitts and Nevis","圣基茨和尼维斯","Saint Kitts and Nevis",""),
    LC("LC","LCA","","圣卢西亚","Saint Lucia","圣卢西亚","Saint Lucia","662"),
    MF("MF","","","圣马丁","Saint Martin","圣马丁","Saint Martin",""),
    SX("SX","","","圣马丁岛","Sint Maarten","圣马丁岛","Sint Maarten",""),
    SM("SM","SMR","","圣马力诺","San Marino","圣马力诺","San Marino","674"),
    PM("PM","","","圣皮埃尔和密克隆岛","Saint Pierre and Miquelon","圣皮埃尔和密克隆岛","Saint Pierre and Miquelon",""),
    VC("VC","","","圣文森特和格林纳丁斯群岛","Saint Vincent and the Grenadines","圣文森特和格林纳丁斯群岛","Saint Vincent and the Grenadines",""),
    LK("LK","LKA","","斯里兰卡","Sri Lanka","斯里兰卡","Sri Lanka","144"),
    SK("SK","SVK","sk","斯洛伐克","Slovakia","斯洛伐克","Slovakia","703"),
    SI("SI","SVN","sl","斯洛文尼亚","Slovenia","斯洛文尼亚","Slovenia","705"),
    SJ("SJ","","","斯瓦尔巴岛和扬马延岛","Svalbard and Jan Mayen","斯瓦尔巴岛和扬马延岛","Svalbard and Jan Mayen",""),
    SZ("SZ","SWZ","","斯威士兰","Swaziland","斯威士兰","Swaziland","748"),
    SR("SR","SUR","","苏里南","Suriname","苏里南","Suriname","740"),
    SO("SO","SOM","","索马里","Somalia","索马里","Somalia","706"),
    SB("SB","SLB","","所罗门群岛","Solomon Islands","所罗门群岛","Solomon Islands","090"),
    TJ("TJ","TJK","","塔吉克斯坦","Tajikistan","塔吉克斯坦","Tajikistan","762"),
    NR("NR","NRU","","瑙鲁","Nauru","瑙鲁","Nauru","520"),
    TH("TH","THA","th","泰国","Thailand","泰国","Thailand","764"),
    TZ("TZ","TZA","","坦桑尼亚","Tanzania","坦桑尼亚","Tanzania","834"),
    TO("TO","TON","","汤加","Tonga","汤加","Tonga","776"),
    TC("TC","","","特克斯和凯科斯群岛","Turks and Caicos Islands","特克斯和凯科斯群岛","Turks and Caicos Islands",""),
    TT("TT","TTO","","特立尼达和多巴哥","Trinidad and Tobago","特立尼达和多巴哥","Trinidad and Tobago","780"),
    TN("TN","TUN","ar","突尼斯","Tunisia","突尼斯","Tunisia","788"),
    TV("TV","TUV","","图瓦卢","Tuvalu","图瓦卢","Tuvalu","798"),
    TR("TR","TUR","tr","土耳其","Turkey","土耳其","Turkey","792"),
    TM("TM","TKM","","土库曼斯坦","Turkmenistan","土库曼斯坦","Turkmenistan","795"),
    TK("TK","TKL","","托克劳群岛","Tokelau","托克劳群岛","Tokelau","772"),
    WF("WF","","","瓦利斯群岛和富图纳群岛","Wallis and Futuna","瓦利斯群岛和富图纳群岛","Wallis and Futuna",""),
    VU("VU","VUT","","瓦努阿图","Vanuatu","瓦努阿图","Vanuatu","548"),
    GT("GT","GTM","es","危地马拉","Guatemala","危地马拉","Guatemala","320"),
    VE("VE","VEN","es","委内瑞拉","Venezuela","委内瑞拉","Venezuela","862"),
    BN("BN","BRN","","文莱","Brunei Darussalam","文莱","Brunei Darussalam","096"),
    UG("UG","UGA","","乌干达","Uganda","乌干达","Uganda","800"),
    UA("UA","UKR","uk","乌克兰","Ukraine","乌克兰","Ukraine","804"),
    UY("UY","URY","es","乌拉圭","Uruguay","乌拉圭","Uruguay","858"),
    UZ("UZ","UZB","","乌兹别克斯坦","Uzbekistan","乌兹别克斯坦","Uzbekistan","860"),
    ES("ES","ESP","ca,es","西班牙","Spain","西班牙","Spain","724"),
    EH("EH","ESH","","西撒哈拉","Western Sahara","西撒哈拉","Western Sahara","732"),
    GR("GR","GRC","el,de","希腊","Greece","希腊","Greece","300"),
    FJ("FJ","FJI","","斐济","Fiji","斐济","Fiji","242"),
    SG("SG","SGP","en,zh","新加坡","Singapore","新加坡","Singapore","702"),
    NC("NC","NCL","","新喀里多尼亚","New Caledonia","新喀里多尼亚","New Caledonia","540"),
    NZ("NZ","NZL","en","新西兰","New Zealand","新西兰","New Zealand","554"),
    HU("HU","HUN","hu","匈牙利","Hungary","匈牙利","Hungary","348"),
    JM("JM","JAM","","牙买加","Jamaica","牙买加","Jamaica","388"),
    AM("AM","ARM","","亚美尼亚","Armenia","亚美尼亚","Armenia","051"),
    YE("YE","YEM","ar","也门","Yemen","也门","Yemen","887"),
    IQ("IQ","IRQ","ar","伊拉克","Iraq","伊拉克","Iraq","368"),
    IL("IL","ISR","iw","以色列","Israel","以色列","Israel","376"),
    IT("IT","ITA","it","意大利","Italy","意大利","Italy","380"),
    IN("IN","IND","hi,en","印度","India","印度","India","356"),
    ID("ID","IDN","in","印度尼西亚","Indonesia","印度尼西亚","Indonesia","360"),
    GB("GB","GBR","en","英国","United Kingdom","英国","United Kingdom","826"),
    VG("VG","","","英属维尔京群岛","Virgin Islands, British","英属维尔京群岛","Virgin Islands, British",""),
    IO("IO","","","英属印度洋领地","British Indian Ocean Territory","英属印度洋领地","British Indian Ocean Territory",""),
    JO("JO","JOR","ar","约旦","Jordan","约旦","Jordan","400"),
    VN("VN","VNM","vi","越南","Vietnam","越南","Vietnam","704"),
    ZM("ZM","ZMB","","赞比亚","Zambia","赞比亚","Zambia","894"),
    JE("JE","","","泽西岛","Jersey","泽西岛","Jersey",""),
    TD("TD","TCD","","乍得","Chad","乍得","Chad","148"),
    GI("GI","GIB","","直布罗陀","Gibraltar","直布罗陀","Gibraltar","292"),
    CL("CL","CHL","es","智利","Chile","智利","Chile","152"),
    CF("CF","CAF","","中非共和国","Central African Republic","中非共和国","Central African Republic","140"),
    HK("HK","HKG","zh","香港","HongKong","中国香港","The Hong Kong Special Administrative Region of China","852"),
    MO("MO","MAC","zh","澳门","Macao","中国澳门","the Macao Special Administrative Region of China","446"),
    TW("TW","TWN","zh","台湾","Taiwan","中国台湾","Taiwan","886"),
    CN("CN","CHN","zh","中国","China","中国","China","156")
    ;
    /**
     * 国家2位数编码,国家编码,CN,US
     */
    private String code;
    /**
     * 国家3位数编码,国家简称CHN,USA
     */
    private String simple;
    /**
     * 语言编码,一个国家可能有多个语言,逗号分割
     */
    private String languageCode;
    /**
     * 中文名
     */
    private String chineseName;
    /**
     * 英文名
     */
    private String enName;
    /**
     * 中文全称
     */
    private String chineseFullName;
    /**
     * 英文全称
     */
    private String enFullName;
    /**
     * 数字编码
     */
    private String numberCode;


    Country(String code,String simple,String languageCode,String chineseName,String enName,String chineseFullName,String enFullName,String numberCode ) {

        this.code = code;
        this.simple = simple;
        this.languageCode = languageCode;
        this.chineseName = chineseName;
        this.enName = enName;
        this.chineseFullName = chineseFullName;
        this.enFullName = enFullName;
        this.numberCode = numberCode;
    }


    public static Country parseCountry(String value) {
        if (StrUtil.isBlank(value)) {
            return Country.CN;
        }

        for (Country country : Country.values()) {
            if (country.getCode().equalsIgnoreCase(value)
                ||country.getEnName().equalsIgnoreCase(value)
                ||country.getChineseName().equalsIgnoreCase(value)
                    ||country.getNumberCode().equalsIgnoreCase(value)
                    ||country.getSimple().equalsIgnoreCase(value)
            ) {
                return country;
            }
        }
        return Country.CN;
    }
}
